package com.shop.util;

import java.util.regex.Pattern;

/**
 * 格式工具类
 *
 * @author Jerry
 */
public class RegexUtils {
	
	/**
	 * 密码是否符合规范（[a-zA-Z\\d]{6,20}），true：符合； false：不符合
	 *
	 * @return
	 */
	public static boolean isPassword(String password) {
		if (null == password) {
			return false;
		}
		
		return password.matches("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$");
	}

	/**
	 * 是否有效手机号码
	 *
	 * @param mobile
	 * @return
	 */
	public static boolean isMobile(String mobile) {
		if (null == mobile) {
			return false;
		}
		
		return mobile.matches("^((13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\\d{8})$");
	}
	
	/**
	 * 是否有效邮箱
	 *
	 * @param email
	 * @return
	 */
	public static boolean isEmail(String email) {
		if (null == email) {
			return false;
		}
		
		return email.matches("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\\.[a-zA-Z0-9_-]{2,3}){1,2})$");
	}

	/**
	 * 是否为16,19或者22位银行账号
	 *
	 * @param bankCard
	 * @return
	 */
	public static boolean isBankCard(String bankCard){
	    if (null == bankCard) {
            return false;
        }
	    
	    return bankCard.matches("^(\\d{19}|\\d{16}|\\d{18}|\\d{22})$");
	}

	/**
	 * 是否为有效身份证号码
	 *
	 * @param idNumber
	 * @return
	 */
	public static boolean isIdNumber(String idNumber){
		return Pattern.matches("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([\\d|x|X]{1})$", idNumber);
	}
}
